//
//  Copyright (c) 2008 Bogozma Electronics Inc.
//
//  @ Project : Bogozma Software Development Kit (SDK)
//  @ File Name : CBgaDevice.h
//  @ Date : 6/12/2008
//  @ Author : Michael Gozzo (OIQ# 140438)
//



#if !defined(_CBGANETINFO_H)
#define _CBGANETINFO_H

#include "bgaos.h"
#include "BgaEnums.h"

#if BCL_USE_GNU
#pragma GCC visibility push(default)
#endif

namespace BogozmaCommunicationLibrary
   {
   class BGACOMLIB_EXPORT CBgaNetworkInfo
      {
      public:         
         virtual void SetDeviceInfo(BtalkDeviceInfo* DeviceInfo) = 0;
         virtual BtalkDeviceInfo* GetDeviceInfo() = 0;
         virtual INT_64 GetMacAddress() = 0;
         virtual long  GetIpAddress() = 0;
         virtual void  SetIpAddress(long IpToSet) = 0;
         virtual long  GetGateway() = 0;
         virtual void  SetGateway(long GatewayToSet) = 0;
         virtual long  GetSubnetMask() = 0;
         virtual void  SetSubnetMask(long MaskToSet) = 0;
         virtual enumDeviceType GetType() = 0;
         virtual long  GetHardwareVersion() = 0;
         virtual long  GetFirmwareVersion() = 0;
         virtual char* GetName(char* UserNamePtr, size_t BufferSize) = 0;
         virtual void  SetName(const char* UserNamePtr, size_t BufferSize) = 0;

         virtual bool IsPasswordProtected() = 0;
         virtual void SetPassword(char* passToSet) = 0;

         virtual long GetPrimaryDns() = 0;
         virtual void SetPrimaryDns(long DnsToSet) = 0;
         virtual long GetSecondaryDns() = 0;
         virtual void SetSecondaryDns(long DnsToSet) = 0;
         virtual void SaveConfiguration() = 0;
         virtual void LoadConfiguration() = 0;
      };
   }


#if BCL_USE_GNU
#pragma GCC visibility pop
#endif
   
#endif  //_CBGANETINFO_H
